home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / swingall.jar / javax / swing / plaf / basic / BasicLabelUI.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-07-15  |  7.2 KB  |  212 lines

  1. package javax.swing.plaf.basic;
  2.  
  3. import java.awt.Color;
  4. import java.awt.Component;
  5. import java.awt.Dimension;
  6. import java.awt.Font;
  7. import java.awt.FontMetrics;
  8. import java.awt.Graphics;
  9. import java.awt.Insets;
  10. import java.awt.Rectangle;
  11. import java.beans.PropertyChangeEvent;
  12. import java.beans.PropertyChangeListener;
  13. import java.util.EventObject;
  14. import javax.swing.Icon;
  15. import javax.swing.JComponent;
  16. import javax.swing.JLabel;
  17. import javax.swing.KeyStroke;
  18. import javax.swing.LookAndFeel;
  19. import javax.swing.SwingUtilities;
  20. import javax.swing.plaf.ComponentUI;
  21. import javax.swing.plaf.LabelUI;
  22. import javax.swing.text.View;
  23.  
  24. public class BasicLabelUI extends LabelUI implements PropertyChangeListener {
  25.    protected static BasicLabelUI labelUI = new BasicLabelUI();
  26.    private static Rectangle paintIconR = new Rectangle();
  27.    private static Rectangle paintTextR = new Rectangle();
  28.    private static Rectangle paintViewR = new Rectangle();
  29.    private static Insets paintViewInsets = new Insets(0, 0, 0, 0);
  30.    private static Rectangle iconR = new Rectangle();
  31.    private static Rectangle textR = new Rectangle();
  32.    private static Rectangle viewR = new Rectangle();
  33.    private static Insets viewInsets = new Insets(0, 0, 0, 0);
  34.  
  35.    public static ComponentUI createUI(JComponent var0) {
  36.       return labelUI;
  37.    }
  38.  
  39.    public Dimension getMaximumSize(JComponent var1) {
  40.       Dimension var2 = this.getPreferredSize(var1);
  41.       View var3 = (View)var1.getClientProperty("html");
  42.       if (var3 != null) {
  43.          var2.width = (int)((float)var2.width + (var3.getMaximumSpan(0) - var3.getPreferredSpan(0)));
  44.       }
  45.  
  46.       return var2;
  47.    }
  48.  
  49.    public Dimension getMinimumSize(JComponent var1) {
  50.       Dimension var2 = this.getPreferredSize(var1);
  51.       View var3 = (View)var1.getClientProperty("html");
  52.       if (var3 != null) {
  53.          var2.width = (int)((float)var2.width - (var3.getPreferredSpan(0) - var3.getMinimumSpan(0)));
  54.       }
  55.  
  56.       return var2;
  57.    }
  58.  
  59.    public Dimension getPreferredSize(JComponent var1) {
  60.       JLabel var2 = (JLabel)var1;
  61.       String var3 = var2.getText();
  62.       Icon var4 = var2.getIcon();
  63.       Insets var5 = ((JComponent)var2).getInsets(viewInsets);
  64.       Font var6 = ((Component)var2).getFont();
  65.       int var7 = var5.left + var5.right;
  66.       int var8 = var5.top + var5.bottom;
  67.       if (var4 != null || var3 != null && (var3 == null || var6 != null)) {
  68.          if (var3 != null && (var4 == null || var6 != null)) {
  69.             FontMetrics var9 = ((Component)var2).getToolkit().getFontMetrics(var6);
  70.             iconR.x = iconR.y = iconR.width = iconR.height = 0;
  71.             textR.x = textR.y = textR.width = textR.height = 0;
  72.             viewR.x = var7;
  73.             viewR.y = var8;
  74.             viewR.width = viewR.height = 32767;
  75.             this.layoutCL(var2, var9, var3, var4, viewR, iconR, textR);
  76.             int var10 = Math.min(iconR.x, textR.x);
  77.             int var11 = Math.max(iconR.x + iconR.width, textR.x + textR.width);
  78.             int var12 = Math.min(iconR.y, textR.y);
  79.             int var13 = Math.max(iconR.y + iconR.height, textR.y + textR.height);
  80.             Dimension var14 = new Dimension(var11 - var10, var13 - var12);
  81.             var14.width += var7;
  82.             var14.height += var8;
  83.             return var14;
  84.          } else {
  85.             return new Dimension(var4.getIconWidth() + var7, var4.getIconHeight() + var8);
  86.          }
  87.       } else {
  88.          return new Dimension(var7, var8);
  89.       }
  90.    }
  91.  
  92.    protected void installComponents(JLabel var1) {
  93.       BasicHTML.updateRenderer(var1, var1.getText());
  94.    }
  95.  
  96.    protected void installDefaults(JLabel var1) {
  97.       LookAndFeel.installColorsAndFont(var1, "Label.background", "Label.foreground", "Label.font");
  98.    }
  99.  
  100.    protected void installKeyboardActions(JLabel var1) {
  101.       int var2 = var1.getDisplayedMnemonic();
  102.       Component var3 = var1.getLabelFor();
  103.       ((JComponent)var1).resetKeyboardActions();
  104.       if (var2 != 0 && var3 != null) {
  105.          ((JComponent)var1).registerKeyboardAction(new PressAction(var1, var3), KeyStroke.getKeyStroke(var2, 8, false), 2);
  106.       }
  107.  
  108.    }
  109.  
  110.    protected void installListeners(JLabel var1) {
  111.       ((JComponent)var1).addPropertyChangeListener(this);
  112.    }
  113.  
  114.    public void installUI(JComponent var1) {
  115.       this.installDefaults((JLabel)var1);
  116.       this.installComponents((JLabel)var1);
  117.       this.installListeners((JLabel)var1);
  118.       this.installKeyboardActions((JLabel)var1);
  119.    }
  120.  
  121.    protected String layoutCL(JLabel var1, FontMetrics var2, String var3, Icon var4, Rectangle var5, Rectangle var6, Rectangle var7) {
  122.       return SwingUtilities.layoutCompoundLabel(var1, var2, var3, var4, var1.getVerticalAlignment(), var1.getHorizontalAlignment(), var1.getVerticalTextPosition(), var1.getHorizontalTextPosition(), var5, var6, var7, var1.getIconTextGap());
  123.    }
  124.  
  125.    public void paint(Graphics var1, JComponent var2) {
  126.       JLabel var3 = (JLabel)var2;
  127.       String var4 = var3.getText();
  128.       Icon var5 = ((Component)var3).isEnabled() ? var3.getIcon() : var3.getDisabledIcon();
  129.       if (var5 != null || var4 != null) {
  130.          FontMetrics var6 = var1.getFontMetrics();
  131.          paintViewInsets = var2.getInsets(paintViewInsets);
  132.          paintViewR.x = paintViewInsets.left;
  133.          paintViewR.y = paintViewInsets.top;
  134.          paintViewR.width = var2.getWidth() - (paintViewInsets.left + paintViewInsets.right);
  135.          paintViewR.height = var2.getHeight() - (paintViewInsets.top + paintViewInsets.bottom);
  136.          paintIconR.x = paintIconR.y = paintIconR.width = paintIconR.height = 0;
  137.          paintTextR.x = paintTextR.y = paintTextR.width = paintTextR.height = 0;
  138.          String var7 = this.layoutCL(var3, var6, var4, var5, paintViewR, paintIconR, paintTextR);
  139.          if (var5 != null) {
  140.             var5.paintIcon(var2, var1, paintIconR.x, paintIconR.y);
  141.          }
  142.  
  143.          if (var4 != null) {
  144.             View var8 = (View)var2.getClientProperty("html");
  145.             if (var8 != null) {
  146.                var8.paint(var1, paintTextR);
  147.             } else {
  148.                int var9 = paintTextR.x;
  149.                int var10 = paintTextR.y + var6.getAscent();
  150.                if (((Component)var3).isEnabled()) {
  151.                   this.paintEnabledText(var3, var1, var7, var9, var10);
  152.                } else {
  153.                   this.paintDisabledText(var3, var1, var7, var9, var10);
  154.                }
  155.             }
  156.          }
  157.  
  158.       }
  159.    }
  160.  
  161.    protected void paintDisabledText(JLabel var1, Graphics var2, String var3, int var4, int var5) {
  162.       int var6 = var1.getDisplayedMnemonic();
  163.       Color var7 = ((Component)var1).getBackground();
  164.       var2.setColor(var7.brighter());
  165.       BasicGraphicsUtils.drawString(var2, var3, var6, var4 + 1, var5 + 1);
  166.       var2.setColor(var7.darker());
  167.       BasicGraphicsUtils.drawString(var2, var3, var6, var4, var5);
  168.    }
  169.  
  170.    protected void paintEnabledText(JLabel var1, Graphics var2, String var3, int var4, int var5) {
  171.       int var6 = var1.getDisplayedMnemonic();
  172.       var2.setColor(((Component)var1).getForeground());
  173.       BasicGraphicsUtils.drawString(var2, var3, var6, var4, var5);
  174.    }
  175.  
  176.    public void propertyChange(PropertyChangeEvent var1) {
  177.       String var2 = var1.getPropertyName();
  178.       if (!var1.getPropertyName().equals("labelFor") && !var1.getPropertyName().equals("displayedMnemonic")) {
  179.          if (var2.equals("text")) {
  180.             JLabel var3 = (JLabel)((EventObject)var1).getSource();
  181.             String var4 = var3.getText();
  182.             BasicHTML.updateRenderer(var3, var4);
  183.          }
  184.       } else {
  185.          this.installKeyboardActions((JLabel)((EventObject)var1).getSource());
  186.       }
  187.  
  188.    }
  189.  
  190.    protected void uninstallComponents(JLabel var1) {
  191.       BasicHTML.updateRenderer(var1, "");
  192.    }
  193.  
  194.    protected void uninstallDefaults(JLabel var1) {
  195.    }
  196.  
  197.    protected void uninstallKeyboardActions(JLabel var1) {
  198.       ((JComponent)var1).resetKeyboardActions();
  199.    }
  200.  
  201.    protected void uninstallListeners(JLabel var1) {
  202.       ((JComponent)var1).removePropertyChangeListener(this);
  203.    }
  204.  
  205.    public void uninstallUI(JComponent var1) {
  206.       this.uninstallDefaults((JLabel)var1);
  207.       this.uninstallComponents((JLabel)var1);
  208.       this.uninstallListeners((JLabel)var1);
  209.       this.uninstallKeyboardActions((JLabel)var1);
  210.    }
  211. }
  212.